package com.freecat.xmqgct.mvp.presenter;

import android.text.TextUtils;

import com.freecat.xmqgct.mvp.bean.StatisticsBean;
import com.freecat.xmqgct.mvp.model.LoginRepository;
import com.freecat.xmqgct.mvp.model.entity.BaseResponse;
import com.freecat.xmqgct.mvp.model.entity.FileBean;
import com.freecat.xmqgct.mvp.model.entity.LoginBean;
import com.freecat.xmqgct.mvp.model.entity.PageLIST;
import com.freecat.xmqgct.mvp.model.entity.UpdateBean;
import com.freecat.xmqgct.mvp.model.entity.UserIdBean;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Action;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.art.di.component.AppComponent;
import me.jessyan.art.mvp.BasePresenter;
import me.jessyan.art.mvp.Message;
import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import me.jessyan.rxerrorhandler.handler.RetryWithDelay;
import okhttp3.MultipartBody;


/**
 * ================================================
 * Description:
 * <p>
 * Created by MVPArtTemplate on 09/16/2019 10:08
 * <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
 * <a href="https://github.com/JessYanCoding">Follow me</a>
 * <a href="https://github.com/JessYanCoding/MVPArt">Star me</a>
 * <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
 * <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
 * ================================================
 */
public class LoginPresenter extends BasePresenter<LoginRepository> {
    public static final int LOGIN_SUCCESS = 1;

    public static final int GET_UNIT = 2;
    public static final int REGISTER_SUCCESS = 3;
    public static final int GET_USER_DETAIL = 4;
    public static final int UPLOAD = 5;
    public static final int CHECK_IN = 6;
    public static final int CHECK_UPDATE = 7;
    public static final int LW_LOGIN_SUCCESS = 10;

    private RxErrorHandler mErrorHandler;
    GsonBuilder builder=new GsonBuilder();

    Gson   gson=builder.create();
    public LoginPresenter(AppComponent appComponent) {
        super(appComponent.repositoryManager().createRepository(LoginRepository.class));
        this.mErrorHandler = appComponent.rxErrorHandler();
    }

    public void upload(Message message) {
        Object[] objs = message.objs;
        MultipartBody.Part obj = (MultipartBody.Part) objs[1];
        String rybh = (String) objs[0];
        String xmbh = (String) objs[3];
        int type = (int) objs[2];
        mModel.upload(rybh, xmbh, obj)
                .subscribeOn(Schedulers.io())
                .retryWhen(new RetryWithDelay(2, 3))
                .doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Exception {
                        addDispose(disposable);
                        message.getTarget().showLoading();
                    }
                })
                .subscribeOn(AndroidSchedulers.mainThread())
                .observeOn(AndroidSchedulers.mainThread())
                .doFinally(new Action() {
                    @Override
                    public void run() throws Exception {
                        message.getTarget().hideLoading();
                        message.recycle();
                    }
                })
                .subscribe(new ErrorHandleSubscriber<BaseResponse<FileBean>>(mErrorHandler) {
                    @Override
                    public void onNext(BaseResponse<FileBean> response) {
//                        if ("1".equals(response.getStatus())) {

                        JsonObject jso=response.getResult();

                        FileBean data=gson.fromJson(jso.get("data"), FileBean.class);

                        if ("200".equals(response.getCode())) {
                            message.what = UPLOAD;
                            message.arg1 = type;
                            message.obj = data;
                            message.handleMessageToTargetUnrecycle();
                        } else {
                            if (TextUtils.isEmpty(response.getError())) {
                                message.getTarget().showMessage("请求失败"+response.getMsg());
                            } else {
                                message.getTarget().showMessage(response.getError());
                            }
                        }
                    }
                });
    }

    public void login(Message message) {
        String[] args = (String[]) message.objs;
//        byte[] bytes = EncryptUtils.encryptRSA(args[1].getBytes(), EncodeUtils.base64Decode(Constant.PUBLIC_KEY), true, "RSA/None/PKCS1Padding");
//        String s = EncodeUtils.base64Encode2String(bytes);
//        System.out.println("s===password"+s);
        String s =args[1];
                mModel.login(args[0], s)
                .subscribeOn(Schedulers.io())
                .retryWhen(new RetryWithDelay(2, 3))
                .doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Exception {
                        addDispose(disposable);
                        message.getTarget().showLoading();
                    }
                })
                .subscribeOn(AndroidSchedulers.mainThread())
                .observeOn(AndroidSchedulers.mainThread())
                .doFinally(new Action() {
                    @Override
                    public void run() throws Exception {
                        message.getTarget().hideLoading();
                        message.recycle();
                    }
                })
                .subscribe(new ErrorHandleSubscriber<BaseResponse<LoginBean>>(mErrorHandler) {
                    @Override
                    public void onNext(BaseResponse<LoginBean> response) {

                        JsonObject jso=response.getResult();

//                        LoginBean p=gson.fromJson(jso.get("data"), LoginBean.class);

                        if ("200".equals(response.getCode())) {
                            System.out.println("LOGIN_SUCCESS =====================请求成功");
                            message.what = LOGIN_SUCCESS;
//                            message.obj = response.getData();
                            message.obj = gson.fromJson(jso.get("data"), LoginBean.class);
                            message.handleMessageToTargetUnrecycle();
                        } else {
                            if (TextUtils.isEmpty(response.getError())) {
                                message.getTarget().showMessage("请求失败"+response.getMsg());
                            } else {
                                message.getTarget().showMessage(response.getError());
                            }
                        }
                    }
                });
    }


//
//    public void lw_login(Message message) {
//        System.out.println("M==南疆项目创建");
//        Object[] args = message.objs;
//        Map<String, String> map1 = (Map<String, String>) args[0];
//        mModel.lw_login(map1)
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse<LoginBean>>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse<LoginBean> response) {
//                        if ("200".equals(response.getCode())) {
//
//                            List<ProjectBean> List=new ArrayList<>();
//                            List=GetObjetList(response.getResult(),List,22);
//                            JsonObject jso=response.getResult();
//                            PageLIST PL=PLload(jso,List);
//                            PL.setMsg(response.getMsg());
//                            message.what = LW_LOGIN_SUCCESS;
//                            message.obj = PL;
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }

//    public void checkUpdate(Message message) {
//        String[] args = (String[]) message.objs;
//        mModel.checkUpdate(args[0])
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse<UpdateBean>>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse<UpdateBean> response) {
////                        if ("1".equals(response.getStatus())) {
//                        if ("200".equals(response.getCode())) {
//
//                            message.what = CHECK_UPDATE;
//                            message.obj = response.getData();
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }
//
//    public void getDwmcList(Message message) {
//        String[] args = (String[]) message.objs;
//        mModel.getDwmcList(args[0])
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse<List<UnitNameBean>>>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse<List<UnitNameBean>> response) {
////                        if ("1".equals(response.getStatus())) {
//                        if ("200".equals(response.getCode())) {
//
//                            message.what = GET_UNIT;
//                            message.obj = response.getData();
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }

//    public void register(Message message) {
//        System.out.println("开始注册");
//        String[] args = (String[]) message.objs;
//        mModel.register(args[0], args[1], args[2], args[3], args[4], args[5])
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse<UserIdBean>>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse<UserIdBean> response) {
////                        if ("1".equals(response.getStatus())) {
//                        if ("200".equals(response.getCode())) {
//
//                            message.what = REGISTER_SUCCESS;
//                            message.obj = response.getData();
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }


//    /*
//    *
//    * 新建南江注册，附带文件整体注册上传
//    * */
//    public void register_nj(Message message) {
//        System.out.println("开始注册_南江");
//        //mobile, password, dwmc, sfzh, ryxm, rytx,UPpart
//        Object[] args = message.objs;
//        String mobile = (String) args[0];
//        String password = (String) args[1];
//        String dwmc = (String) args[2];
//        String sfzh = (String) args[3];
//        String ryxm = (String) args[4];
//        String category = (String) args[5];
//        MultipartBody.Part rytx = (MultipartBody.Part) args[6];
//        System.out.println("rytx=================="+rytx);
//        mModel.register_nj(mobile,password,dwmc,sfzh,ryxm,category,rytx)
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse<UserIdBean>>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse<UserIdBean> response) {
////                        if ("1".equals(response.getStatus())) {
//
//                        if ("200".equals(response.getCode())) {
//                            JsonObject jso=response.getResult();
//                            System.out.println("response.getResult()=="+response.getResult().toString());
////
////                            UserIdBean ub=new UserIdBean();
////                            ub.setDwmc(jso.get("dwmc").toString());
////                            ub.setMobile(jso.get("mobile").toString());
////                            ub.setRybh(jso.get("rybh").toString());
////                            ub.setRyxm(jso.get("ryxm").toString());
////                            ub.setSfzh(jso.get("sfzh").toString());
////                            System.out.println("ub===="+ub.toString());
//                            message.what = REGISTER_SUCCESS;
////                            message.obj = response.getData();
//                            message.obj = gson.fromJson(response.getResult(), UserIdBean.class);
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }
//
//    public void getUserDetail(Message message) {
//        String[] args = (String[]) message.objs;
//        mModel.getUserDetail(args[0])
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse<LoginBean>>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse<LoginBean> response) {
////                        if ("1".equals(response.getStatus())) {
//                        if ("200".equals(response.getCode())) {
//                            message.what = GET_USER_DETAIL;
//                            message.obj = response.getData();
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }
//
//    public void CheckIn(Message message) {
//        String[] args = (String[]) message.objs;
//        mModel.CheckIn(args[0], args[1], args[2], args[3], args[4], args[5], args[6])
//                .subscribeOn(Schedulers.io())
//                .retryWhen(new RetryWithDelay(2, 3))
//                .doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        addDispose(disposable);
//                        message.getTarget().showLoading();
//                    }
//                })
//                .subscribeOn(AndroidSchedulers.mainThread())
//                .observeOn(AndroidSchedulers.mainThread())
//                .doFinally(new Action() {
//                    @Override
//                    public void run() throws Exception {
//                        message.getTarget().hideLoading();
//                        message.recycle();
//                    }
//                })
//                .subscribe(new ErrorHandleSubscriber<BaseResponse>(mErrorHandler) {
//                    @Override
//                    public void onNext(BaseResponse response) {
////                        if ("1".equals(response.getStatus())) {
//                        if ("200".equals(response.getCode())) {
//                            message.what = CHECK_IN;
//                            message.obj = response.getData();
//                            message.handleMessageToTargetUnrecycle();
//                        } else {
//                            if (TextUtils.isEmpty(response.getError())) {
//                                message.getTarget().showMessage("请求失败"+response.getMsg());
//                            } else {
//                                message.getTarget().showMessage(response.getError());
//                            }
//                        }
//                    }
//                });
//    }


    /*
   集中适配JARR方法
   * */
    public List GetObjetList(JsonObject jsob,List lists,int type){


        if (jsob.has("data")&&jsob.get("data")!=null&&jsob.get("data").toString().length()>5){
            switch (type){

//                case 1:
//                    JsonArray arry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : arry) {
//                        lists.add(gson.fromJson(jsonElement, ProjectBean.class));
//                    }
//                    break;
//                case 2:
//                    JsonArray TempArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : TempArry) {
//                        lists.add(gson.fromJson(jsonElement, TemplateBean.class));
//                    }
//                    break;
//
//                case 3:
//                    JsonArray QxBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : QxBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, QxBean.class));
//                    }
//                    break;
//                case 4:
//                    JsonArray JsRyBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : JsRyBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, JsryBeam.class));
//                    }
//                    break;
//                case 5:
//                    JsonArray LwDwBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : LwDwBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, LwdwBean.class));
//                    }
//                    break;
//                case 6:
//                    JsonArray MessageLISTbeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : MessageLISTbeanArry) {
//                        lists.add(gson.fromJson(jsonElement, MessageBean.class));
//                    }
//                    break;
//                case 7:
//                    JsonArray TemplateLISTbeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : TemplateLISTbeanArry) {
//                        lists.add(gson.fromJson(jsonElement,TemplateBean.class));
//                    }
//                    break;
//                case 8:
//                    JsonArray SystemCodeBeanLISTbeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : SystemCodeBeanLISTbeanArry) {
//                        lists.add(gson.fromJson(jsonElement, SystemCodeBean.class));
//                    }
//                    break;
//                case 9:
//                    JsonArray SurverPointListBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : SurverPointListBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, SurveyPointBean.class));
//                    }
//                    break;
//                case 10:
//                    JsonArray FileBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : FileBeanArry) {
//                        lists.add(gson.fromJson(jsonElement,FileBean.class));
//                    }
//                    break;
//                case 11:
//                    JsonArray RecordNumBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : RecordNumBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, RecordNumBean.class));
//                    }
//                    break;
//                case 12:
//                    JsonArray PiercebeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : PiercebeanArry) {
//                        lists.add(gson.fromJson(jsonElement, PierceBean.class));
//                    }
//                    break;
//                case 13:
//                    JsonArray DynamicBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : DynamicBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, DynamicBean.class));
//                    }
//                case 14:
//                    JsonArray SwlistArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : SwlistArry) {
//                        lists.add(gson.fromJson(jsonElement, SwcsListBean.class));
//                    }
//                    break;
//                case 15:
//                    JsonArray WaveArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : WaveArry) {
//                        lists.add(gson.fromJson(jsonElement, WaveListBean.class));
//                    }
//                    break;
//                case 16:
//                    JsonArray HcjlArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : HcjlArry) {
//                        lists.add(gson.fromJson(jsonElement, HcjlBean.class));
//                    }
//                    break;
//                case 17:
//                    JsonArray GeologyBeanAryy = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : GeologyBeanAryy) {
//                        lists.add(gson.fromJson(jsonElement, GeologyBean.class));
//                    }
//
//                    break;
//                case 18:
//                    JsonArray SurveyPointNumBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : SurveyPointNumBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, SurveyPointNumBean.class));
//                    }
//                    break;
//                case 19:
//                    JsonArray SamplingListBeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : SamplingListBeanArry) {
////                    System.out.println("add_SamplingListBeanArry"+jsonElement.toString());
//                        lists.add(gson.fromJson(jsonElement, SamplingListBean.class));
//                    }
//                    break;
//                case 20:
//
//                    /*
//                     * :{"qyCnt":1,"kcdCnt":5,"qyKsCnt":3,"sysjList":[]},"pageNo":null,"p
//                     * */
////                System.out.println("jsob.get(\"data\").getAsJsonObject().get(\"sysjList\")"+jsob.get("data").getAsJsonObject().get("sysjList"));
////                System.out.println("qyCnt"+jsob.get("data").getAsJsonObject().get("qyCnt"));
////                System.out.println("kcdCnt"+jsob.get("data").getAsJsonObject().get("kcdCnt"));
////                System.out.println("qyKsCnt"+jsob.get("data").getAsJsonObject().get("qyKsCnt"));
//                    JsonArray SysjListBeanArry = new JsonParser().parse(jsob.get("data").getAsJsonObject().get("sysjList").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : SysjListBeanArry) {
//                        lists.add(gson.fromJson(jsonElement, StatisticsBean.SysjListBean.class));
//                    }
//                    break;
//
//
//                case 21:
//
//                    JsonArray lwbeanArry = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : lwbeanArry) {
//                        lists.add(gson.fromJson(jsonElement, lwBean.class));
//                    }
//                    break;
//
//                case 22:
//                    JsonArray arryProjectDetailBean = new JsonParser().parse(jsob.get("data").toString()).getAsJsonArray();
//                    for (JsonElement jsonElement : arryProjectDetailBean) {
//                        lists.add(gson.fromJson(jsonElement, ProjectDetailBean.class));
//                    }
//                    break;

            }
        }



        return  lists;
    }

    public  <T> T fromToJson(String json, Type listType){
        Gson gson = new Gson();
        T t = null;
        t = gson.fromJson(json,listType);
        return t;
    }

    public PageLIST PLload(JsonObject jsonObject, List Lists){

        PageLIST PL=new PageLIST();
        if (jsonObject.get("pageNo").toString()!=null){
            PL.setPageNo(jsonObject.get("pageNo").toString());
        }else {
            PL.setPageNo("10");
        }
        if (jsonObject.get("pageSize").toString()!=null){
            PL.setPageSize(jsonObject.get("pageSize").toString());
        }else {
            PL.setPageSize("1");
        }
        if (jsonObject.get("totalCount").toString()!=null){
            PL.setTotalCount(jsonObject.get("totalCount").toString());
        }else {
            PL.setTotalCount("10");
        }
        if (jsonObject.get("totalPage").toString()!=null){
            PL.setTotalPage(jsonObject.get("totalPage").toString());
        }else {
            PL.setTotalCount("1");
        }
        /*
        *  "zks": 7,
        "ywc": 1,
        "zjc": 0
        * */

        if (jsonObject.has("zks")){
            if (jsonObject.get("zks").toString()!=null){
                PL.setZks(jsonObject.get("zks").toString());
            }
        }

        if (jsonObject.has("ywc")){
            if (jsonObject.get("ywc").toString()!=null){
                PL.setYwc(jsonObject.get("ywc").toString());
            }
        }
        if (jsonObject.has("zjc")){
            if (jsonObject.get("zjc").toString()!=null){
                PL.setZjc(jsonObject.get("zjc").toString());
            }
        }

        if (jsonObject.has("rybh")){
            if (jsonObject.get("rybh").toString()!=null){
                PL.setRybh(jsonObject.get("rybh").toString());
            }
        }
        if (jsonObject.has("token")){
            if (jsonObject.get("token").toString()!=null){
                PL.setToken(jsonObject.get("token").toString());
            }
        }



        PL.setObjectList(Lists);
        return  PL;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        this.mErrorHandler = null;
    }
}